home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / p / pov / povlisti.ngs / povlist1.tos / FLYROD2.POV < prev    next >
Encoding:
Text File  |  1992-05-17  |  13.3 KB  |  380 lines

  1. // Persistence of Vision Raytracer
  2. // Flyrod & flyreel by Dan Farmer  May '92
  3. // Rendering time: 55 minutes on a 33/486 +a0.1 640x480
  4. #include "include.inc"
  5. #declare Bamboo1 = colour  red   1.00 green   0.78 blue   0.46
  6. #declare Bamboo2 = colour  red   0.97 green   0.82 blue   0.47
  7.  
  8. #declare Reel_Texture = texture {
  9.     0.1
  10.     Shiny
  11.     color Gray50
  12. }
  13.  
  14. #declare Nickle_Silver = texture {
  15.     0.25
  16.     Metal
  17.     color red 0.94 green 0.93 blue 0.83
  18. }
  19.  
  20.  
  21. #declare Cork = texture {
  22.     0.05
  23.     granite
  24.     colour_map {
  25.         [0.0 0.6  colour red 0.93 green 0.71 blue 0.532
  26.                   colour red 0.98 green 0.81 blue 0.60]
  27.         [0.6 0.65 colour red 0.50 green 0.30 blue 0.20
  28.                   colour red 0.50 green 0.30 blue 0.20]
  29.         [0.65 1.0 colour red 0.80 green 0.53 blue 0.46
  30.                   colour red 0.85 green 0.75 blue 0.35]
  31.     }
  32.     scale <0.25 0.25 0.25>     // Generally looks best scaled longer on one axis
  33.     specular 0.1 roughness 0.5 // Very dull
  34.     ambient 0.1
  35.     diffuse 0.5
  36. }
  37.  
  38. #declare RoseWood = texture {
  39.     DMFWood3
  40.     rotate <0 875 0>              // For x cylinder on reelseat (almost 90)
  41.     ambient 0.3
  42.     specular 0.85 roughness 0.005
  43. }
  44.  
  45. // Torus, Outer 2.23, inner 2.075.
  46. // Used as beaded rim on flyreel frame
  47. #declare Split_Torus =
  48.     intersection {
  49.         quartic {
  50.            <    1.000000 0.000000 0.000000 0.000000 2.000000
  51.                 0.000000 0.000000 2.000000 0.000000 -9.368125
  52.                 0.000000 0.000000 0.000000 0.000000 0.000000
  53.                 0.000000 0.000000 0.000000 0.000000 0.000000
  54.                 1.000000 0.000000 0.000000 2.000000 0.000000
  55.                 9.337500 0.000000 0.000000 0.000000 0.000000
  56.                 1.000000 0.000000 -9.368125 0.000000 21.797227
  57.             >
  58.         }
  59.     plane {<0 1 0> 0}
  60.     rotate <90 0 0>
  61. }
  62.  
  63.  
  64.  
  65.  
  66. // Over-all view of reel and butt section of rod
  67. camera {
  68.    location <-5.0  2  -80>
  69.    direction <0.0 0.0  3.0>
  70.    up  <0.0  1.0  0.0>
  71.    right <1.33333 0.0 0.0>
  72.    look_at <0 -2 0>
  73. }
  74.  
  75. object { light_source  { <-2  30 -20>  color White  } }
  76. object { light_source  { < -20 5 -5>  color Gray75  } }
  77. object { sphere {<0 0 0> 10000 } texture {0.035 color DimGray ambient 1 diffuse 0} }
  78.  
  79.  
  80. #declare FlyRod = composite {
  81.  
  82.     // Cork flyrod handle
  83.     object {
  84.         union {
  85.             intersection { X_Disk }
  86.             quadric { Ellipsoid translate <1 0 0> }
  87.         }
  88.         color Red
  89.         texture { Cork scale <2 1 1> }
  90.         scale <5 1 1>
  91.     }
  92.  
  93.     // Reelseat
  94.     object {
  95.         intersection { X_Disk scale <2 0.75 0.75> translate <-7 0 0> }
  96.         color Orange
  97.         texture { RoseWood
  98.             DMFWood3
  99.             rotate <0 90 0>
  100.             ambient 0.25
  101.             specular 0.85 roughness 0.005
  102.         }
  103.     }
  104.  
  105.     // Metal Cap and band for end of reelseat
  106.     object {
  107.         union {
  108.             intersection { X_Disk scale <0.5 0.78 0.76> translate <-9.5 0 0> } // Cap
  109.             intersection { X_Disk scale <0.05 0.82 0.82> translate <-9.05 0 0> }
  110.             quadric { Ellipsoid   scale <0.20 0.80 0.80> translate <-10 0 0> }
  111.  
  112.             intersection { X_Disk scale <0.05 0.82 0.82> translate <-6.7 0 0> } // Band
  113.             intersection { X_Disk scale <0.25 0.78 0.76> translate <-6.5 0 0> } // Band
  114.             intersection { X_Disk scale <0.05 0.82 0.82> translate <-6.3 0 0> } // Band
  115.         }
  116.         color Yellow
  117.         texture {
  118.             Nickle_Silver
  119.         }
  120.     }
  121.  
  122.  
  123.     object {
  124.         // Bamboo flyrod (sorry, it's not tapered)
  125.         intersection { Hexagon
  126.             rotate <30 0 0>
  127.         }
  128.         color Green
  129.         texture {
  130.             Glossy
  131.             gradient <1 0 0>
  132.             color_map {
  133.                 [0.0 0.02 color green 0.35 color green 0.35]
  134.                 [0.02 0.03 color Yellow color Yellow]
  135.                 [0.03 0.07 color green 0.35 color green 0.35]
  136.                 [0.07 0.08 color Yellow color Yellow]
  137.                 [0.08 0.1 color green 0.35 color green 0.35]
  138.                 [0.1 1.0 color Bamboo1 color Bamboo2]
  139.             }
  140.             scale <0.1 1 1>
  141.             translate <-1 0 0>
  142.         }
  143.  
  144.  
  145. /* ----------
  146.         // Graphite flyrod (tapered)
  147.         union {
  148.             intersection { HalfCone_Y
  149.                 rotate <0 0 -90>
  150.             }
  151.         }
  152.         color Green
  153.         texture {
  154.             Glossy
  155.             gradient <1 0 0>
  156.             color_map {
  157.                 [0.0 0.02 color Red color Red]
  158.                 [0.02 0.03 color Black color Black]
  159.                 [0.03 0.07 color Red color Red]
  160.                 [0.07 0.08 color Black color Black]
  161.                 [0.08 0.1 color Red color Red]
  162.                 [0.1 1.0 color Gray50 color Gray50]
  163.             }
  164.             scale <0.1 1 1>
  165.             translate <-1 0 0>
  166.         }
  167. ----------------*/
  168.         scale <100 0.25 0.25>
  169.         translate <110 0 0>
  170.     }
  171.  
  172. }    // end of flyrod composite
  173.  
  174.  
  175. #declare Reel = composite {
  176.  
  177.     // Flyline (off the reel)
  178.     object {
  179.         intersection { X_Disk
  180.             scale <100 0.075 0.075>
  181.         }
  182.         texture { color White }
  183.         translate <100 -2 0>
  184.         rotate <0 0 5>
  185.     }
  186.  
  187.     // Inner spool w/line on it
  188.     // This is simply a Z_Disk with separate textures on each part.
  189.     // The gradients are to simulate the flyline
  190.     object {
  191.         intersection {
  192.             quadric { Cylinder_Z
  193.                 texture {
  194.                     gradient <0 0 1>
  195.                     color_map {
  196.                         [0.0  0.25 color DimGray color White]
  197.                         [0.25 0.75 color White color White]
  198.                         [0.75  1.0 color White  color DimGray  ]
  199.                     }
  200.                     scale <1 1 0.1 >
  201.                     ambient 0.3
  202.                 }
  203.             }
  204.             plane { <0 0 1> -1 inverse
  205.                 texture {
  206.                     wood
  207.                     turbulence 0
  208.                     color_map {
  209.                         [0.0  0.25 color DimGray color White]
  210.                         [0.25 0.75 color White color White]
  211.                         [0.75  1.0 color White  color DimGray  ]
  212.                     }
  213.                     scale <0.1 0.1 1 >
  214.                     ambient 0.3
  215.                 }
  216.             }
  217.  
  218.             plane { <0 0 1>  1
  219.                 texture {
  220.                     wood
  221.                     turbulence 0
  222.                     color_map {
  223.                         [0.0  0.25 color DimGray color White]
  224.                         [0.25 0.75 color White color White]
  225.                         [0.75  1.0 color White  color DimGray  ]
  226.                     }
  227.                     scale <0.1 0.1 1 >
  228.                     ambient 0.3
  229.                 }
  230.             }
  231.         }
  232.         color Blue
  233.         scale <1.65 1.65 1>
  234.     }
  235.  
  236.     // Flanges
  237.     object {
  238.         difference {
  239.             difference {
  240.                 union {
  241.                     intersection { Z_Disk scale <2 2 0.15> translate <0 0 -1> }
  242.                     intersection { Z_Disk scale <2 2 0.15> translate <0 0  1> }
  243.                 }
  244.                 union {
  245.                     intersection { Z_Disk scale <1.95 1.95 0.075> translate <0 0 -1.15> }
  246.                     intersection { Z_Disk scale <1.95 1.95 0.075> translate <0 0  1.15> }
  247.                 }
  248.             }
  249.             union {
  250.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> }
  251.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0  22.5>}
  252.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0  45>}
  253.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0  67.5>}
  254.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0  90>}
  255.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 112.5>}
  256.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 135>}
  257.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 157.5>}
  258.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 180>}
  259.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 202.5>}
  260.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 225>}
  261.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 247.5>}
  262.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 270>}
  263.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 292.5>}
  264.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 315>}
  265.                 quadric { Cylinder_Z scale <0.2 0.2 1> translate <0 1.5 0> rotate <0 0 337.5>}
  266.  
  267.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> }
  268.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0  22.5>}
  269.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0  45>}
  270.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0  67.5>}
  271.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0  90>}
  272.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 112.5>}
  273.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 135>}
  274.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 157.5>}
  275.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 180>}
  276.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 202.5>}
  277.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 225>}
  278.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 247.5>}
  279.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 270>}
  280.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 292.5>}
  281.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 315>}
  282.                 quadric { Cylinder_Z scale <0.125 0.125 1> translate <0 1 0> rotate <0 0 337.5>}
  283.             }
  284.         }
  285.         bounded_by { intersection { Z_Disk scale <2.1 2.1 1.2> } }
  286.         color Cyan
  287.         texture { Reel_Texture }
  288.     }
  289.  
  290.     // Handle
  291.     object {
  292.         union {
  293.             intersection { Z_Disk scale <0.2 0.2 0.5>
  294.                 translate <0 1.5 -1.5>
  295.                 rotate <0 0 22.5>
  296.             }
  297.             // Button on the end of the handle
  298.             quadric { Ellipsoid  scale <0.15 0.15 0.025>
  299.                 translate <0 1.5 -2>
  300.                 rotate <0 0 22.5>
  301.                 texture { Nickle_Silver }
  302.             }
  303.         }
  304.         color Magenta
  305.         texture { Shiny color Black }
  306.     } // end of handle
  307.  
  308.  
  309.     // Hub cap
  310.     object {
  311.         union {
  312.             intersection { Z_Disk scale <0.35 0.35 0.1>  }
  313.             quadric { Ellipsoid scale <0.25 0.25 0.15> }
  314.         }
  315.         translate <0 0 -1.1>
  316.         texture { Nickle_Silver }
  317.     } // end of hub cap
  318.  
  319.  
  320.     // Reel Frame
  321.     object {
  322.         union {
  323.             difference {
  324.                 union {
  325.                     intersection { Z_Disk scale <2.25 2.25 0.15> translate <0 0 -1> }
  326.                     intersection { Z_Disk scale <2.25 2.25 0.15> translate <0 0  1> }
  327.                 }
  328.                 union {
  329.                     quadric { Cylinder_Z scale <2.075 2.075 1> }
  330.                     quadric { Cylinder_Z scale <2.075 2.075 1> }
  331.                 }
  332.             }
  333.             // Crossbars
  334.             box { UnitBox scale <0.075 0.075 0.85> translate <0 2.175 0> rotate <0 0 90>}
  335.             box { UnitBox scale <0.075 0.075 0.85> translate <0 2.175 0> rotate <0 0 180>}
  336.             box { UnitBox scale <0.075 0.075 0.85> translate <0 2.175 0> rotate <0 0 -90>}
  337.             // Beaded rim
  338.             intersection { Split_Torus translate <0 0 -1.15>}
  339.             intersection { Split_Torus rotate <180 0 0> translate <0 0 +1.15>}
  340.         }
  341.         color Red
  342.         texture { Reel_Texture }
  343.         bounded_by { intersection { Z_Disk scale <2.4 2.4 1.21> } }
  344.     } // end of reel frame
  345.  
  346.  
  347.     // Reel Foot
  348.     object {
  349.         union {
  350.             intersection {
  351.                 difference {
  352.                     intersection {X_Disk scale <1.75 0.77 0.77> }
  353.                     intersection {X_Disk scale <1.85 0.75 0.75> }
  354.                 }
  355.                 plane { <0 1 0> -0.40 }
  356.                 quadric { Cylinder_Y scale <1.75 0.75 1>}
  357.             }
  358.             box { UnitBox scale <0.5 0.075 0.50> translate <0 -0.825 0> }
  359.             box { UnitBox scale <0.25 0.075 0.85> translate <0 -0.975 0> color Green }
  360.         }
  361.         color Orange
  362.         texture { Reel_Texture }
  363.         bounded_by {
  364.             box { UnitBox scale <1.85 1 0.85> }
  365.         }
  366.         translate <0 2.77 0>
  367.     }  // end of reel foot
  368.  
  369. }
  370.  
  371. composite {
  372.     composite {Reel translate <-8 -2.75  0> }
  373.     composite {FlyRod}
  374.   bounded_by {
  375.         quadric { Cylinder_X scale <1 4.25 3> translate <0 -3 0>}
  376.     }
  377.     translate <-4 0 0>
  378.     rotate <0 0 45>
  379. }
  380.